"""
1.表4-7为某班学生的成绩，请通过已经定义好的模板"{}同学，你的考试成绩是：语文{}，英语{}，数学{}，总成绩{}，特此通知！"输出姓名和成绩
姓名          语文          英语          数学
张三          90            87           78
李四          93            87           67
王五          88            90           95
"""
#定义列表保存姓名和成绩
std = [
    ['张三', 90, 87, 78],
    ['李四', 93, 87, 67],
    ['王五', 88, 90, 95]
]
#定义模板
mod = '{}同学，你的考试成绩是：语文{}，英语{}，数学{}，总成绩{}，特此通知！'
for st in std:
    cnt = 0
    for i in range(1,4):
        cnt += st[i]
    print(mod.format(st[0], st[1], st[2], st[3], cnt))

    """
2.编程实现，500个人围成一个圈，从1开始数，每数到3的倍数的人离开圈子，循环往复直到最后只剩一个人，输出剩下的这个人原来在圈中的位置（编号）
"""
joseph = []							#定义空列表
for i in range(1,501):              #循环500次
    joseph.append(i)
index = 0						#定义index，并赋为0
count = 0					    #定义count，并赋为0
while len(joseph) > 1:
    count += 1                  #count加1
    if count % 3 == 0:
        joseph.pop(index)
        index -= 1
    index += 1
    if index == len(joseph):
        index = 0
print(joseph)

"""
3.编程实现，使用列表保存学生的信息，包括姓名、性别、年龄，然后使用字典保存3个班级的学生信息，每个班级3个学生，以班级名为键，以存放学生信息的列表为值，最后根据输入的班级名输出该班级的学生信息
"""
#定义列表，每个列表保存3个学生信息
class1 = [
    ['张三丰', '男', 7],
    ['杨过', '男', 9],
    ['郭靖', '女', 8]
]
class2 = [
    ['刘备', '男', 10],
    ['孙尚香', '女', 8],
    ['诸葛亮', '男', 9]
]
class3 = [
    ['许明明', '女', 11],
    ['刘能', '男', 12],
    ['马三', '男', 10]
]
#定义字典，并将列表添加到字典中
grade = {}
grade['三年级一班'] = class1
grade['三年级二班'] = class2
grade['四年级一班'] = class3
class_name = input('请输入班级名：')
print(class_name, '的学生信息：')
for key in grade.keys():				#遍历字典的键
    if key == class_name:				#如果键等于输入的班级名
        for student in grade[key]:		#遍历输入的班级名对应的值
            for info in student:			#遍历学生信息列表
                print(info, end=' ')
            print()
